14 - 2.3.2 C-Kurzeinführung: Zeiger, Zeiger als Funktionsargumente von Variablen [ID:14668]
50 von 369 angezeigt

Ja, hallo. Bisher haben wir uns mit Eigenschaften der Programmiersprache C

beschäftigt, wie man sie eigentlich in vielen anderen Programmiersprachen auch

findet. Es ging um Datentypen und Viablen, es ging um Funktionen, es ging um die

Frage, wo in einem Programm welche Daten sichtbar sind, wann welche Daten

angelegt werden und wann der Speicher wieder freigegeben wird.

Alles Dinge, die relativ normal, würde ich mal sagen, in vielen Programmiersprachen

sind. Wir kommen jetzt zu einem Abschnitt, der eine wirkliche Besonderheit der

Programmiersprache C darstellt. Es geht nämlich um das Thema Zeiger. Was haben

wir nun bisher kennengelernt? Wir hatten zum einen die Konstanten oder Literale, so

etwas wie diesen Buchstaben A in Einzelapostroph geklammert, der letztendlich

für das Bitmuster 0110001 steht, also letztendlich für die Zahl

hexadezimal 61. Wir hatten Variablen, die einen Namen haben, auch wieder zum

Beispiel dieses A. Eine Variable mit Namen A steht letztendlich für eine

Speicherstelle, die einen Wert, beispielsweise vom Typ Character oder vom

Typ Integer, aufnehmen kann, je nachdem wie diese Variable definiert ist. Das heißt,

die Variable ist letztendlich eine Bezeichnung für ein Datenobjekt.

Neu haben wir jetzt Zeigervariablen. Zeigervariablen sind eigentlich auch

normale Variablen, die auch ein Objekt bezeichnen.

Hier die Variable P steht als Name für eine Speicherstelle, die jetzt

aber ihrerseits nicht einfach einen Wert aufnimmt, sondern die de facto die

Adresse einer anderen Variable enthält. Dann wird das Ganze, wie hier

beschrieben, definieren. Character Stern P. Dann heißt das P ist ein Zeiger auf ein

Character und die Variable A war eine Character-Variable und mit diesem und A

bezeichne ich die Adresse der Variablen A und damit zeigt anschließend oder

referenziert die Variable P die Variable A. Oder um es also so richtig praktisch

auszudrücken. Die Variable P ist der Name einer Speicherstelle und dort steht die

Adresse an der die Variable A im Speicher steht.

Darüber kann man dann durchaus interessante Dinge tun und das schauen

wir uns jetzt im folgenden an. Man kann jetzt also ganz konkret sagen, dass eine

Zeigervariable als Wert die Adresse einer anderen Variablen enthält und dass

damit die Zeigervariable auf die Variable verweist. Und über diese Adresse kann man

nun indirekt auf die Variable zugreifen. Und damit kann man eine Menge durchaus

interessanter, wichtiger Dinge tun und damit daraus resultiert letztlich auch

die große Bedeutung von Zeigern in C. Mit Hilfe von Zeigern kann man erreichen

zum Beispiel, dass Funktionen indirekt ihre Aufrufparameter verändern können.

Also man kann nun Kolberreferenz realisieren, indem man der Funktion jetzt

nicht einfach einen Wert übergibt, sondern eine Adresse übergibt, an der ein Wert

steht und in dem Moment, wo die Funktion die Adresse kennt, kann sie

natürlich indirekt über diesen Zeiger auch in die Speicherstelle hineinschreiben

und auf die Weise beim Aufrufer ein Wert verändern.

Man kann damit dynamische Speicherverwaltung bauen, indem man zum

Betriebssystem geht und sich ein Stück Speicher geben lässt, reservieren lässt

und man bekommt vom Betriebssystem dann einen Zeiger auf diesen Speicherbereich

und kann über diesen Zeiger dann auf diesen Speicher zugreifen.

Und man kann durchaus effiziente Programme damit schreiben, denn es ist

natürlich ein riesen Unterschied, wenn Sie sich vorstellen, wenn Sie eine 1000x1000

Matrix haben, sagen wir mal 1000x1000 Integerwerte, dann ist das ein

Speicherbedarf von 4 MB, wenn ein Integerwert 4 MB groß ist.

Und wenn Sie jetzt diese 4 MB an eine Funktion übergeben wollen, ist es

natürlich schon ein Unterschied, ob Sie ein Call-By-Value machen und 4 MB

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:30:48 Min

Aufnahmedatum

2020-05-01

Hochgeladen am

2020-05-01 03:16:20

Sprache

de-DE

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen